package com.xdb.sqlparser.visitor;

import com.xdb.sqlparser.ast.SQLCommentHint;
import com.xdb.sqlparser.ast.SQLDataType;
import com.xdb.sqlparser.ast.SQLObject;
import com.xdb.sqlparser.ast.SQLOrderBy;
import com.xdb.sqlparser.ast.SQLOver;
import com.xdb.sqlparser.ast.expr.SQLAggregateExpr;
import com.xdb.sqlparser.ast.expr.SQLAllColumnExpr;
import com.xdb.sqlparser.ast.expr.SQLAllExpr;
import com.xdb.sqlparser.ast.expr.SQLAnyExpr;
import com.xdb.sqlparser.ast.expr.SQLBetweenExpr;
import com.xdb.sqlparser.ast.expr.SQLBinaryExpr;
import com.xdb.sqlparser.ast.expr.SQLBinaryOpExpr;
import com.xdb.sqlparser.ast.expr.SQLBooleanExpr;
import com.xdb.sqlparser.ast.expr.SQLCaseExpr;
import com.xdb.sqlparser.ast.expr.SQLCastExpr;
import com.xdb.sqlparser.ast.expr.SQLCharExpr;
import com.xdb.sqlparser.ast.expr.SQLCurrentOfCursorExpr;
import com.xdb.sqlparser.ast.expr.SQLDefaultExpr;
import com.xdb.sqlparser.ast.expr.SQLExistsExpr;
import com.xdb.sqlparser.ast.expr.SQLHexExpr;
import com.xdb.sqlparser.ast.expr.SQLIdentifierExpr;
import com.xdb.sqlparser.ast.expr.SQLInListExpr;
import com.xdb.sqlparser.ast.expr.SQLInSubQueryExpr;
import com.xdb.sqlparser.ast.expr.SQLIntegerExpr;
import com.xdb.sqlparser.ast.expr.SQLListExpr;
import com.xdb.sqlparser.ast.expr.SQLMethodInvokeExpr;
import com.xdb.sqlparser.ast.expr.SQLNCharExpr;
import com.xdb.sqlparser.ast.expr.SQLNotExpr;
import com.xdb.sqlparser.ast.expr.SQLNullExpr;
import com.xdb.sqlparser.ast.expr.SQLNumberExpr;
import com.xdb.sqlparser.ast.expr.SQLPropertyExpr;
import com.xdb.sqlparser.ast.expr.SQLQueryExpr;
import com.xdb.sqlparser.ast.expr.SQLSomeExpr;
import com.xdb.sqlparser.ast.expr.SQLTimestampExpr;
import com.xdb.sqlparser.ast.expr.SQLUnaryExpr;
import com.xdb.sqlparser.ast.expr.SQLVariantRefExpr;
import com.xdb.sqlparser.ast.statement.SQLNotNullConstraint;
import com.xdb.sqlparser.ast.statement.SQLAlterTableAddColumn;
import com.xdb.sqlparser.ast.statement.SQLAlterTableAddConstraint;
import com.xdb.sqlparser.ast.statement.SQLAlterTableAddIndex;
import com.xdb.sqlparser.ast.statement.SQLAlterTableAlterColumn;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDisableConstraint;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDisableKeys;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDropColumnItem;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDropConstraint;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDropForeignKey;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDropIndex;
import com.xdb.sqlparser.ast.statement.SQLAlterTableDropPrimaryKey;
import com.xdb.sqlparser.ast.statement.SQLAlterTableEnableConstraint;
import com.xdb.sqlparser.ast.statement.SQLAlterTableEnableKeys;
import com.xdb.sqlparser.ast.statement.SQLAlterTableRename;
import com.xdb.sqlparser.ast.statement.SQLAlterTableRenameColumn;
import com.xdb.sqlparser.ast.statement.SQLAlterTableStatement;
import com.xdb.sqlparser.ast.statement.SQLAssignItem;
import com.xdb.sqlparser.ast.statement.SQLCallStatement;
import com.xdb.sqlparser.ast.statement.SQLCharacterDataType;
import com.xdb.sqlparser.ast.statement.SQLCheck;
import com.xdb.sqlparser.ast.statement.SQLColumnCheck;
import com.xdb.sqlparser.ast.statement.SQLColumnDefinition;
import com.xdb.sqlparser.ast.statement.SQLColumnPrimaryKey;
import com.xdb.sqlparser.ast.statement.SQLColumnReference;
import com.xdb.sqlparser.ast.statement.SQLColumnUniqueKey;
import com.xdb.sqlparser.ast.statement.SQLCommentStatement;
import com.xdb.sqlparser.ast.statement.SQLCreateDatabaseStatement;
import com.xdb.sqlparser.ast.statement.SQLCreateIndexStatement;
import com.xdb.sqlparser.ast.statement.SQLCreateTableStatement;
import com.xdb.sqlparser.ast.statement.SQLCreateTriggerStatement;
import com.xdb.sqlparser.ast.statement.SQLCreateViewStatement;
import com.xdb.sqlparser.ast.statement.SQLDeleteStatement;
import com.xdb.sqlparser.ast.statement.SQLDropDatabaseStatement;
import com.xdb.sqlparser.ast.statement.SQLDropFunctionStatement;
import com.xdb.sqlparser.ast.statement.SQLDropIndexStatement;
import com.xdb.sqlparser.ast.statement.SQLDropProcedureStatement;
import com.xdb.sqlparser.ast.statement.SQLDropSequenceStatement;
import com.xdb.sqlparser.ast.statement.SQLDropTableSpaceStatement;
import com.xdb.sqlparser.ast.statement.SQLDropTableStatement;
import com.xdb.sqlparser.ast.statement.SQLDropTriggerStatement;
import com.xdb.sqlparser.ast.statement.SQLDropUserStatement;
import com.xdb.sqlparser.ast.statement.SQLDropViewStatement;
import com.xdb.sqlparser.ast.statement.SQLExplainStatement;
import com.xdb.sqlparser.ast.statement.SQLExprHint;
import com.xdb.sqlparser.ast.statement.SQLExprTableSource;
import com.xdb.sqlparser.ast.statement.SQLForeignKeyImpl;
import com.xdb.sqlparser.ast.statement.SQLGrantStatement;
import com.xdb.sqlparser.ast.statement.SQLInsertStatement;
import com.xdb.sqlparser.ast.statement.SQLJoinTableSource;
import com.xdb.sqlparser.ast.statement.SQLPrimaryKeyImpl;
import com.xdb.sqlparser.ast.statement.SQLReleaseSavePointStatement;
import com.xdb.sqlparser.ast.statement.SQLRevokeStatement;
import com.xdb.sqlparser.ast.statement.SQLRollbackStatement;
import com.xdb.sqlparser.ast.statement.SQLSavePointStatement;
import com.xdb.sqlparser.ast.statement.SQLSelect;
import com.xdb.sqlparser.ast.statement.SQLSelectGroupByClause;
import com.xdb.sqlparser.ast.statement.SQLSelectItem;
import com.xdb.sqlparser.ast.statement.SQLSelectOrderByItem;
import com.xdb.sqlparser.ast.statement.SQLSelectQueryBlock;
import com.xdb.sqlparser.ast.statement.SQLSelectStatement;
import com.xdb.sqlparser.ast.statement.SQLSetStatement;
import com.xdb.sqlparser.ast.statement.SQLSubqueryTableSource;
import com.xdb.sqlparser.ast.statement.SQLTruncateStatement;
import com.xdb.sqlparser.ast.statement.SQLUnionQuery;
import com.xdb.sqlparser.ast.statement.SQLUnionQueryTableSource;
import com.xdb.sqlparser.ast.statement.SQLUnique;
import com.xdb.sqlparser.ast.statement.SQLUpdateSetItem;
import com.xdb.sqlparser.ast.statement.SQLUpdateStatement;
import com.xdb.sqlparser.ast.statement.SQLUseStatement;
import com.xdb.sqlparser.ast.statement.SQLWithSubqueryClause;

public interface SQLAstVisitor {

	void endVisit(SQLAllColumnExpr x);

	void endVisit(SQLBetweenExpr x);

	void endVisit(SQLBinaryOpExpr x);

	void endVisit(SQLCaseExpr x);

	void endVisit(SQLCaseExpr.Item x);

	void endVisit(SQLCharExpr x);

	void endVisit(SQLIdentifierExpr x);

	void endVisit(SQLInListExpr x);

	void endVisit(SQLIntegerExpr x);

	void endVisit(SQLExistsExpr x);

	void endVisit(SQLNCharExpr x);

	void endVisit(SQLNotExpr x);

	void endVisit(SQLNullExpr x);

	void endVisit(SQLNumberExpr x);

	void endVisit(SQLPropertyExpr x);

	void endVisit(SQLSelectGroupByClause x);

	void endVisit(SQLSelectItem x);

	void endVisit(SQLSelectStatement selectStatement);

	void postVisit(SQLObject astNode);

	void preVisit(SQLObject astNode);

	boolean visit(SQLAllColumnExpr x);

	boolean visit(SQLBetweenExpr x);

	boolean visit(SQLBinaryOpExpr x);

	boolean visit(SQLCaseExpr x);

	boolean visit(SQLCaseExpr.Item x);

	boolean visit(SQLCastExpr x);

	boolean visit(SQLCharExpr x);

	boolean visit(SQLExistsExpr x);

	boolean visit(SQLIdentifierExpr x);

	boolean visit(SQLInListExpr x);

	boolean visit(SQLIntegerExpr x);

	boolean visit(SQLNCharExpr x);

	boolean visit(SQLNotExpr x);

	boolean visit(SQLNullExpr x);

	boolean visit(SQLNumberExpr x);

	boolean visit(SQLPropertyExpr x);

	boolean visit(SQLSelectGroupByClause x);

	boolean visit(SQLSelectItem x);

	void endVisit(SQLCastExpr x);

	boolean visit(SQLSelectStatement astNode);

	void endVisit(SQLAggregateExpr astNode);

	boolean visit(SQLAggregateExpr astNode);

	boolean visit(SQLVariantRefExpr x);

	void endVisit(SQLVariantRefExpr x);

	boolean visit(SQLQueryExpr x);

	void endVisit(SQLQueryExpr x);

	boolean visit(SQLUnaryExpr x);

	void endVisit(SQLUnaryExpr x);

	boolean visit(SQLHexExpr x);

	void endVisit(SQLHexExpr x);

	boolean visit(SQLSelect x);

	void endVisit(SQLSelect select);

	boolean visit(SQLSelectQueryBlock x);

	void endVisit(SQLSelectQueryBlock x);

	boolean visit(SQLExprTableSource x);

	void endVisit(SQLExprTableSource x);

	boolean visit(SQLOrderBy x);

	void endVisit(SQLOrderBy x);

	boolean visit(SQLSelectOrderByItem x);

	void endVisit(SQLSelectOrderByItem x);

	boolean visit(SQLDropTableStatement x);

	void endVisit(SQLDropTableStatement x);

	boolean visit(SQLCreateTableStatement x);

	void endVisit(SQLCreateTableStatement x);

	boolean visit(SQLColumnDefinition x);

	void endVisit(SQLColumnDefinition x);

	boolean visit(SQLDataType x);

	void endVisit(SQLDataType x);

	boolean visit(SQLCharacterDataType x);

	void endVisit(SQLCharacterDataType x);

	boolean visit(SQLDeleteStatement x);

	void endVisit(SQLDeleteStatement x);

	boolean visit(SQLCurrentOfCursorExpr x);

	void endVisit(SQLCurrentOfCursorExpr x);

	boolean visit(SQLInsertStatement x);

	void endVisit(SQLInsertStatement x);

	boolean visit(SQLInsertStatement.ValuesClause x);

	void endVisit(SQLInsertStatement.ValuesClause x);

	boolean visit(SQLUpdateSetItem x);

	void endVisit(SQLUpdateSetItem x);

	boolean visit(SQLUpdateStatement x);

	void endVisit(SQLUpdateStatement x);

	boolean visit(SQLCreateViewStatement x);

	void endVisit(SQLCreateViewStatement x);

	boolean visit(SQLCreateViewStatement.Column x);

	void endVisit(SQLCreateViewStatement.Column x);

	boolean visit(SQLNotNullConstraint x);

	void endVisit(SQLNotNullConstraint x);

	void endVisit(SQLMethodInvokeExpr x);

	boolean visit(SQLMethodInvokeExpr x);

	void endVisit(SQLUnionQuery x);

	boolean visit(SQLUnionQuery x);

	void endVisit(SQLSetStatement x);

	boolean visit(SQLSetStatement x);

	void endVisit(SQLAssignItem x);

	boolean visit(SQLAssignItem x);

	void endVisit(SQLCallStatement x);

	boolean visit(SQLCallStatement x);

	void endVisit(SQLJoinTableSource x);

	boolean visit(SQLJoinTableSource x);

	void endVisit(SQLSomeExpr x);

	boolean visit(SQLSomeExpr x);

	void endVisit(SQLAnyExpr x);

	boolean visit(SQLAnyExpr x);

	void endVisit(SQLAllExpr x);

	boolean visit(SQLAllExpr x);

	void endVisit(SQLInSubQueryExpr x);

	boolean visit(SQLInSubQueryExpr x);

	void endVisit(SQLListExpr x);

	boolean visit(SQLListExpr x);

	void endVisit(SQLSubqueryTableSource x);

	boolean visit(SQLSubqueryTableSource x);

	void endVisit(SQLTruncateStatement x);

	boolean visit(SQLTruncateStatement x);

	void endVisit(SQLDefaultExpr x);

	boolean visit(SQLDefaultExpr x);

	void endVisit(SQLCommentStatement x);

	boolean visit(SQLCommentStatement x);

	void endVisit(SQLUseStatement x);

	boolean visit(SQLUseStatement x);

	boolean visit(SQLAlterTableAddColumn x);

	void endVisit(SQLAlterTableAddColumn x);

	boolean visit(SQLAlterTableDropColumnItem x);

	void endVisit(SQLAlterTableDropColumnItem x);

	boolean visit(SQLAlterTableDropIndex x);

	void endVisit(SQLAlterTableDropIndex x);

	boolean visit(SQLDropIndexStatement x);

	void endVisit(SQLDropIndexStatement x);

	boolean visit(SQLDropViewStatement x);

	void endVisit(SQLDropViewStatement x);

	boolean visit(SQLSavePointStatement x);

	void endVisit(SQLSavePointStatement x);

	boolean visit(SQLRollbackStatement x);

	void endVisit(SQLRollbackStatement x);

	boolean visit(SQLReleaseSavePointStatement x);

	void endVisit(SQLReleaseSavePointStatement x);

	void endVisit(SQLCommentHint x);

	boolean visit(SQLCommentHint x);

	void endVisit(SQLCreateDatabaseStatement x);

	boolean visit(SQLCreateDatabaseStatement x);

	void endVisit(SQLOver x);

	boolean visit(SQLOver x);

	void endVisit(SQLColumnPrimaryKey x);

	boolean visit(SQLColumnPrimaryKey x);

	boolean visit(SQLColumnUniqueKey x);

	void endVisit(SQLColumnUniqueKey x);

	void endVisit(SQLWithSubqueryClause x);

	boolean visit(SQLWithSubqueryClause x);

	void endVisit(SQLWithSubqueryClause.Entry x);

	boolean visit(SQLWithSubqueryClause.Entry x);

	void endVisit(SQLAlterTableAlterColumn x);

	boolean visit(SQLAlterTableAlterColumn x);

	boolean visit(SQLCheck x);

	void endVisit(SQLCheck x);

	boolean visit(SQLAlterTableDropForeignKey x);

	void endVisit(SQLAlterTableDropForeignKey x);

	boolean visit(SQLAlterTableDropPrimaryKey x);

	void endVisit(SQLAlterTableDropPrimaryKey x);

	boolean visit(SQLAlterTableDisableKeys x);

	void endVisit(SQLAlterTableDisableKeys x);

	boolean visit(SQLAlterTableEnableKeys x);

	void endVisit(SQLAlterTableEnableKeys x);

	boolean visit(SQLAlterTableStatement x);

	void endVisit(SQLAlterTableStatement x);

	boolean visit(SQLAlterTableDisableConstraint x);

	void endVisit(SQLAlterTableDisableConstraint x);

	boolean visit(SQLAlterTableEnableConstraint x);

	void endVisit(SQLAlterTableEnableConstraint x);

	boolean visit(SQLColumnCheck x);

	void endVisit(SQLColumnCheck x);

	boolean visit(SQLExprHint x);

	void endVisit(SQLExprHint x);

	boolean visit(SQLAlterTableDropConstraint x);

	void endVisit(SQLAlterTableDropConstraint x);

	boolean visit(SQLUnique x);

	void endVisit(SQLUnique x);

	boolean visit(SQLPrimaryKeyImpl x);

	void endVisit(SQLPrimaryKeyImpl x);

	boolean visit(SQLCreateIndexStatement x);

	void endVisit(SQLCreateIndexStatement x);

	boolean visit(SQLAlterTableRenameColumn x);

	void endVisit(SQLAlterTableRenameColumn x);

	boolean visit(SQLColumnReference x);

	void endVisit(SQLColumnReference x);

	boolean visit(SQLForeignKeyImpl x);

	void endVisit(SQLForeignKeyImpl x);

	boolean visit(SQLDropSequenceStatement x);

	void endVisit(SQLDropSequenceStatement x);

	boolean visit(SQLDropTriggerStatement x);

	void endVisit(SQLDropTriggerStatement x);

	void endVisit(SQLDropUserStatement x);

	boolean visit(SQLDropUserStatement x);

	void endVisit(SQLExplainStatement x);

	boolean visit(SQLExplainStatement x);

	void endVisit(SQLGrantStatement x);

	boolean visit(SQLGrantStatement x);

	void endVisit(SQLDropDatabaseStatement x);

	boolean visit(SQLDropDatabaseStatement x);

	void endVisit(SQLAlterTableAddIndex x);

	boolean visit(SQLAlterTableAddIndex x);

	void endVisit(SQLAlterTableAddConstraint x);

	boolean visit(SQLAlterTableAddConstraint x);

	void endVisit(SQLCreateTriggerStatement x);

	boolean visit(SQLCreateTriggerStatement x);

	void endVisit(SQLDropFunctionStatement x);

	boolean visit(SQLDropFunctionStatement x);

	void endVisit(SQLDropTableSpaceStatement x);

	boolean visit(SQLDropTableSpaceStatement x);

	void endVisit(SQLDropProcedureStatement x);

	boolean visit(SQLDropProcedureStatement x);

	void endVisit(SQLBooleanExpr x);

	boolean visit(SQLBooleanExpr x);

	void endVisit(SQLUnionQueryTableSource x);

	boolean visit(SQLUnionQueryTableSource x);

	void endVisit(SQLTimestampExpr x);

	boolean visit(SQLTimestampExpr x);

	void endVisit(SQLRevokeStatement x);

	boolean visit(SQLRevokeStatement x);

	void endVisit(SQLBinaryExpr x);

	boolean visit(SQLBinaryExpr x);

	void endVisit(SQLAlterTableRename x);

	boolean visit(SQLAlterTableRename x);

}
